package com.pe.pgn.clubpgn.webapp.controller.migrar;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.support.SessionStatus;
import java.io.OutputStream;
import java.util.List;


import com.pe.pgn.clubpgn.common.CLPConstantes;
import com.pe.pgn.clubpgn.domain.ClpbPrograma;
import com.pe.pgn.clubpgn.domain.beans.BNClientesPersona;
import com.pe.pgn.clubpgn.domain.beans.BNMigracion;
import com.pe.pgn.clubpgn.service.AfiliacionService;
import com.pe.pgn.clubpgn.service.MigrarClienteService;
import com.pe.pgn.clubpgn.util.PoiExcelWriter2007;
import com.pe.pgn.clubpgn.webapp.controller.BaseFormController;


@Controller
@RequestMapping("/migrar/**")
public class MigrarClientesController extends BaseFormController {
	
	
	public static String FONT_TYPE= HSSFFont.FONT_ARIAL;
	@Autowired 
	private MigrarClienteService migrarClienteService;
	
	@Autowired
	private AfiliacionService afiliacionService;

	
					
	@RequestMapping(value = "/migrarclienteform.html", method = RequestMethod.GET)
	public @ModelAttribute("migrarCliente") BNMigracion Migrar(Model model,HttpServletRequest request) {
		
		List<ClpbPrograma> programas=null;
		
		BNMigracion migrarCliente= new BNMigracion();
		List listDep  = null;
		List listProv = null;
		List listDist = null;

	
		try {
		
		programas = migrarClienteService.listaProgramas( );
		migrarCliente.setProgramas(programas);
		listDep = afiliacionService.findDepartamentosUbigeo(true);		
		listProv = afiliacionService.findPronvinciaUbigeo(null, true);
		listDist = afiliacionService.findDistritoUbigeo(null, null, true);
	
		} catch (Exception e) {
			saveError(request, getText("errors.general", request.getLocale()));
		}
		
		model.addAttribute("listadepartamento"  , listDep);
		model.addAttribute("listaprovincia"	    , listProv);
		model.addAttribute("listadistrito"	    , listDist);
	
		
		return migrarCliente;

		
	}

	
	@RequestMapping(value = "/migrarclienteform.html", method = RequestMethod.POST)
	public String migrarClientes(
			@ModelAttribute("migrarCliente") BNMigracion bnMigracion,
			Model model,  SessionStatus status, HttpServletRequest request) {

		if(bnMigracion.getCoProgramaOrigen()!=-1 && bnMigracion.getCoProgramaDestino()!=-1 && !bnMigracion.getCoProgramaOrigen().equals(bnMigracion.getCoProgramaDestino())){
			BNMigracion bean =new BNMigracion();
			bean= migrarClienteService.migrarcliente(bnMigracion);
			
			if(bean.getMensaje().equalsIgnoreCase("EXITO")){
				model.addAttribute("resultadomigrar", bean);		
				return resultado(bean);
				
			}else if(bean.getMensaje().equalsIgnoreCase("ERROR")){
				saveError(request, getText("migrarCliente.programasnocomp", request.getLocale()));
				return "redirect:migrarclienteform.html";
			}else if(bean.getMensaje().equalsIgnoreCase("VACIO")){
				saveError(request, getText("migrarCliente.nohayclientes", request.getLocale()));
				return "redirect:migrarclienteform.html";
			}else if(bean.getMensaje().equalsIgnoreCase("VACIO_PROG")){
				saveError(request, getText("migrarCliente.nohayclientesfiltros", request.getLocale()));
				return "redirect:migrarclienteform.html";
			}
			

		}else{ 
		if(bnMigracion.getCoProgramaOrigen()==-1 || bnMigracion.getCoProgramaDestino()==-1){
			saveError(request, getText("migrarCliente.programas", request.getLocale()));
			return "redirect:migrarclienteform.html";
			
		}else if(bnMigracion.getCoProgramaOrigen().equals(bnMigracion.getCoProgramaDestino())){
			saveError(request, getText("migrarCliente.programasiguales", request.getLocale()));
			return "redirect:migrarclienteform.html";
			
		}
		}
		
		return "redirect:migrarclienteform.html";
		
	}
	
	
	
	@RequestMapping(value = "/resultadomigrarform.html", method = RequestMethod.GET)
	public String resultado(@ModelAttribute("resultadomigrar") BNMigracion bnMigracion) {

	
		return "/migrar/resultadomigrarform";

		
	}
	
	@RequestMapping(value = "/vistaprevia.html", method = RequestMethod.GET)
	public void vista(HttpServletRequest request, HttpServletResponse response){
		
	BNMigracion migracion= null;	
				String coProgramaOrigen=request.getParameter("coProgramaOrigen");
				String coDepartamentoID=request.getParameter("coDepartamentoID");
				String coProvinciaID=request.getParameter("coProvinciaID");
				String coDistritoID=request.getParameter("coDistritoID");
				String edad=request.getParameter("edad");
				String edad1=request.getParameter("edad1");
				String fechaini=request.getParameter("fechaini");
				String fechafin=request.getParameter("fechafin");
				String coProgramaDestino=request.getParameter("coProgramaDestino");
				String desafilia=request.getParameter("desafilia");
	BNMigracion nuevo= new BNMigracion();
				nuevo.setCoDepartamento(coDepartamentoID);
				nuevo.setCoDistrito(coDistritoID);
				nuevo.setCoProvincia(coProvinciaID);
				
				if(edad.equals("")){
					
					nuevo.setEdad(null);	
				}else{
					nuevo.setEdad(edad);
				}
				
				if(edad1.equalsIgnoreCase("")){
					nuevo.setEdad1(null);
				}else{
					nuevo.setEdad1(edad1);
				}
				
				if(fechaini.equals("")){
			
					nuevo.setFechaini(null);
				}else{
					nuevo.setFechaini(fechaini);
				}
				
				if(fechafin.equalsIgnoreCase("")){
					nuevo.setFechafin(null);
				}else{
					nuevo.setFechafin(fechafin);
				}
				
				nuevo.setCoProgramaOrigen(Long.parseLong(coProgramaOrigen));
				nuevo.setCoProgramaDestino(Long.parseLong(coProgramaDestino));
				nuevo.setRangosSI(null);
				nuevo.setRangosNO(null);
				nuevo.setDesafiliar(desafilia);
				
	
		migracion=migrarClienteService.vistapreviamigrar(nuevo);
		
		List<BNClientesPersona>listaSI;
		List<BNClientesPersona>listaNO;
	
		if(!migracion.getRangosSI().equalsIgnoreCase("Vacio")){
		if(migracion.getRangosSI().endsWith(CLPConstantes.CARACTER_COMA)){
			migracion.setRangosSI(migracion.getRangosSI().substring(0, migracion.getRangosSI().length() - 1));
						
			}
			listaSI=migrarClienteService.listadoRangos(migracion.getRangosSI(),migracion.getMotivo());
					
					
				}else{
					listaSI=null;
				}
				
				if(!migracion.getRangosNO().equalsIgnoreCase("Vacio")){	
					
					if(migracion.getRangosNO().endsWith(CLPConstantes.CARACTER_COMA)){
						migracion.setRangosNO(migracion.getRangosNO().substring(0, migracion.getRangosNO().length() - 1));
						}
					listaNO=migrarClienteService.listadoRangos(migracion.getRangosNO(),migracion.getMotivo());
					
				}else{
					listaNO=null;
				}
				
				
				
		try {

			Workbook workbook = PoiExcelWriter2007.createWorkbook();

			Sheet sheet = PoiExcelWriter2007.createSheet(workbook,"Clientes Migrados");
			Sheet sheet1=PoiExcelWriter2007.createSheet(workbook,"Cliente No Migrados");
		
			/**
			 * Creando la cabecera del archivo: Placa Tarjeta Alias Observaciones
			 */
			
			//Creando la fuente de la cabecera
			Font fuenteCabecera = PoiExcelWriter2007.createFont(workbook, Font.BOLDWEIGHT_BOLD, HSSFColor.BLACK.index, 
					(short)12, HSSFFont.FONT_ARIAL , Boolean.FALSE, Boolean.FALSE, Boolean.FALSE, (short)0, 
					Boolean.FALSE, (byte)0);
			
		
			
			//Creando el estilo para la cabecera
			CellStyle estiloCabecera = workbook.createCellStyle();
			estiloCabecera.setFont(fuenteCabecera);
			estiloCabecera.setAlignment(CellStyle.ALIGN_CENTER);
		
			String [] titulos = new String[14];
			titulos [0]="Codigo Cliente";
			titulos [1]="Nombres";
			titulos [2]="Sexo";
			titulos [3]="Nro. Documento";
			titulos [4]="Tipo Documento";
			titulos [5]="Fecha Nacimiento";
			titulos [6]="Estado Civil";
			titulos [7]="Departamento";
			titulos [8]="Provincia";
			titulos [9]="Distrito";
			titulos [10]="Fecha Afiliacion";
			titulos [11]="Nro. Tarjeta";
			titulos [12]="Estado Cliente";
			titulos [13]="Motivo de No Migracion";
			
			int numRow = 0;
			int numRow1 = 0;
		
			Row row = PoiExcelWriter2007.createRow(sheet, numRow++);
			
			//CUERPO
			CellStyle estiloCuerpo = workbook.createCellStyle();
			estiloCuerpo.setAlignment(CellStyle.ALIGN_CENTER);
			
			Row row1 ;
			numRow1 = numRow1 +2;
			int numCell1;
			
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 0, titulos[0]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 1, titulos[1]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 2, titulos[2]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 3, titulos[3]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 4, titulos[4]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 5, titulos[5]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 6, titulos[6]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 7, titulos[7]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 8, titulos[8]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 9, titulos[9]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 10, titulos[10]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 11, titulos[11]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 12, titulos[12]);
			
			
			
			if(listaSI!=null){
				

				for(BNClientesPersona beancliente : listaSI){
					
					numRow1++;
					numCell1 = 0;
					row1=PoiExcelWriter2007.createRow(sheet,numRow1);
					
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getCoClientePersona());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeClientePersona());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getCoSexo());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getCoTipoDocumento());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeTipoDocumento());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getFechaNacimiento());
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeEstadoCivil());
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeDepartamento());
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeProvincia());
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeDistrito());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getFechaInscripcion());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getStTarjetaAsignada());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getHabilitado());	
					//PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, "---");	
				}
			}else{
			
			}
			
			
			///segunda hoja
			int numRowHo2=0;
			row = PoiExcelWriter2007.createRow(sheet1, numRowHo2++);
			
			
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 0, titulos[0]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 1, titulos[1]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 2, titulos[2]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 3, titulos[3]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 4, titulos[4]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 5, titulos[5]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 6, titulos[6]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 7, titulos[7]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 8, titulos[8]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 9, titulos[9]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 10, titulos[10]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 11, titulos[11]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 12, titulos[12]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 13, titulos[13]);
			
		
			numRowHo2 = numRowHo2 +1;
			
			if(listaNO!=null){
				
				for(BNClientesPersona beancliente : listaNO){
					
					numRowHo2++;
					numCell1 = 0;
					row1=PoiExcelWriter2007.createRow(sheet1,numRowHo2);
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getCoClientePersona());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeClientePersona());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getCoSexo());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getCoTipoDocumento());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeTipoDocumento());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getFechaNacimiento());
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeEstadoCivil());
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeDepartamento());
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeProvincia());
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeDistrito());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getFechaInscripcion());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getStTarjetaAsignada());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getHabilitado());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getMotivo());	
	
				}
				
			}else{
				
				
				
			}
			
			response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
			response.setHeader("Content-Disposition","attachment; filename=\""+ "VistaPreviaMigrarClientes.xlsx" + "\"");
			 
			OutputStream out = response.getOutputStream();			  		
			workbook.write(out);				  		
			out.close();
			
		} catch (Exception e) {
			log.error(e.getMessage());
		}
	}

	
	@RequestMapping(value = "/vistaresultado.html", method = RequestMethod.GET)
	public void vistaresultado(HttpServletRequest request, HttpServletResponse response,
			@RequestParam(value = "rangosi", required =true) String rangosi,
			@RequestParam(value ="rangono", required=true)String rangono,
			@RequestParam(value="motivo",required=true)String motivo){
		
	BNMigracion migracion= null;	


				
		
		List<BNClientesPersona>listaSI;
		List<BNClientesPersona>listaNO;
	
			if(!rangosi.equalsIgnoreCase("Vacio")){
				if(rangosi.endsWith(CLPConstantes.CARACTER_COMA)){
					rangosi=rangosi.substring(0, rangosi.length() - 1);
					
				}
					listaSI=migrarClienteService.listadoRangos(rangosi,motivo);
						
					
			}else{
					listaSI=null;
				}
				
				if(!rangono.equalsIgnoreCase("Vacio")){	
					
					if(rangono.endsWith(CLPConstantes.CARACTER_COMA)){
						rangono=rangono.substring(0, rangono.length() - 1);
						
						}
					listaNO=migrarClienteService.listadoRangos(rangono,motivo);
					
				}else{
					listaNO=null;
				}
	
				
		try {

			Workbook workbook = PoiExcelWriter2007.createWorkbook();
				
			//Workbook workbook= new HSSFWorkbook();
			// Creando un nuevo sheet (hoja)
			Sheet sheet = PoiExcelWriter2007.createSheet(workbook,"Clientes Migrados");
			Sheet sheet1=PoiExcelWriter2007.createSheet(workbook,"Cliente No Migrados");
			//Sheet sheet = workbook.createSheet("Clientes Migrados");
			/**
			 * Creando la cabecera del archivo: Placa Tarjeta Alias Observaciones
			 */
			
			//Creando la fuente de la cabecera
			Font fuenteCabecera = PoiExcelWriter2007.createFont(workbook, Font.BOLDWEIGHT_BOLD, HSSFColor.BLACK.index, 
					(short)12, HSSFFont.FONT_ARIAL , Boolean.FALSE, Boolean.FALSE, Boolean.FALSE, (short)0, 
					Boolean.FALSE, (byte)0);
			
		
			
			//Creando el estilo para la cabecera
			CellStyle estiloCabecera = workbook.createCellStyle();
			estiloCabecera.setFont(fuenteCabecera);
			estiloCabecera.setAlignment(CellStyle.ALIGN_CENTER);
		
			String [] titulos = new String[14];
			titulos [0]="Codigo Cliente";
			titulos [1]="Nombres";
			titulos [2]="Sexo";
			titulos [3]="Nro. Documento";
			titulos [4]="Tipo Documento";
			titulos [5]="Fecha Nacimiento";
			titulos [6]="Estado Civil";
			titulos [7]="Departamento";
			titulos [8]="Provincia";
			titulos [9]="Distrito";
			titulos [10]="Fecha Afiliacion";
			titulos [11]="Nro. Tarjeta";
			titulos [12]="Estado Cliente";
			titulos [13]="Motivo de No Migracion";
			int numRow = 0;
			int numRow1 = 0;
		
			Row row = PoiExcelWriter2007.createRow(sheet, numRow++);
			
			//CUERPO
			CellStyle estiloCuerpo = workbook.createCellStyle();
			estiloCuerpo.setAlignment(CellStyle.ALIGN_CENTER);
			
			Row row1 ;
			numRow1 = numRow1 +2;
			int numCell1;
			
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 0, titulos[0]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 1, titulos[1]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 2, titulos[2]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 3, titulos[3]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 4, titulos[4]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 5, titulos[5]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 6, titulos[6]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 7, titulos[7]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 8, titulos[8]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 9, titulos[9]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 10, titulos[10]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 11, titulos[11]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 12, titulos[12]);
			
			
			if(listaSI!=null){
			

				for(BNClientesPersona beancliente : listaSI){
					numRow1++;
					numCell1 = 0;
					row1=PoiExcelWriter2007.createRow(sheet,numRow1);
					
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getCoClientePersona());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeClientePersona());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getCoSexo());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getCoTipoDocumento());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeTipoDocumento());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getFechaNacimiento());
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeEstadoCivil());
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeDepartamento());
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeProvincia());
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeDistrito());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getFechaInscripcion());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getStTarjetaAsignada());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getHabilitado());	
				
				}
			}else{
			
			}
			
			
			///segunda hoja
			int numRowHo2=0;
			row = PoiExcelWriter2007.createRow(sheet1, numRowHo2++);
			
			
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 0, titulos[0]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 1, titulos[1]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 2, titulos[2]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 3, titulos[3]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 4, titulos[4]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 5, titulos[5]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 6, titulos[6]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 7, titulos[7]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 8, titulos[8]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 9, titulos[9]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 10, titulos[10]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 11, titulos[11]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 12, titulos[12]);
			PoiExcelWriter2007.createTextCell(row, estiloCabecera, 13, titulos[13]);
			
		
			numRowHo2 = numRowHo2 +1;
			
			if(listaNO!=null){
				
				for(BNClientesPersona beancliente : listaNO){
					numRowHo2++;
					numCell1 = 0;
					row1=PoiExcelWriter2007.createRow(sheet1,numRowHo2);
					
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getCoClientePersona());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeClientePersona());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getCoSexo());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getCoTipoDocumento());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeTipoDocumento());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getFechaNacimiento());
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeEstadoCivil());
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeDepartamento());
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeProvincia());
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getDeDistrito());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getFechaInscripcion());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getStTarjetaAsignada());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getHabilitado());	
					PoiExcelWriter2007.createTextCell(row1, estiloCuerpo, numCell1++, beancliente.getMotivo());
				}
				
			}else{
				
				
				
			}
			
			response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
			response.setHeader("Content-Disposition","attachment; filename=\""+ "VistaPreviaMigrarClientes.xlsx" + "\"");
			 
			OutputStream out = response.getOutputStream();			  		
			workbook.write(out);				  		
			out.close();
			
		} catch (Exception e) {
		
			log.error(e.getMessage());
		}
	}

}
